﻿using System;

namespace GraphDrawing.Concrete
{
    /// <summary>
    /// Интерфейс модели блока.
    /// </summary>
    public interface IBlockLogic
    {
        Type InputType { get; }
        bool Requires(int inputIndex);
        bool CanAccept(int inputIndex, Type contentType);
        void Connect(int inputIndex, object providedValue);
        void Disconnect(int inputIndex);
        object Provide(int outputIndex);
        bool Validate();
    }
}